/*
 * Copyright (C) 2011 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// IMPORTANT NOTE: This file is named Glcall.java, but it probably should be GLCall.java.
// But please do not change the file name's case. This breaks git clients on Windows.
// source: glcall.proto

package com.android.ide.eclipse.gltrace;

public final class Glcall {
  private Glcall() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  public static final class GLCall extends
      com.google.protobuf.GeneratedMessageLite {
    // Use GLCall.newBuilder() to construct.
    private GLCall() {
      initFields();
    }
    private GLCall(boolean noInit) {}

    private static final GLCall defaultInstance;
    public static GLCall getDefaultInstance() {
      return defaultInstance;
    }

    public GLCall getDefaultInstanceForType() {
      return defaultInstance;
    }

    public enum Function
        implements com.google.protobuf.Internal.EnumLite {
      glActiveTexture(0, 0),
      glAttachShader(1, 1),
      glBindAttribLocation(2, 2),
      glBindBuffer(3, 3),
      glBindFramebuffer(4, 4),
      glBindRenderbuffer(5, 5),
      glBindTexture(6, 6),
      glBlendColor(7, 7),
      glBlendEquation(8, 8),
      glBlendEquationSeparate(9, 9),
      glBlendFunc(10, 10),
      glBlendFuncSeparate(11, 11),
      glBufferData(12, 12),
      glBufferSubData(13, 13),
      glCheckFramebufferStatus(14, 14),
      glClear(15, 15),
      glClearColor(16, 16),
      glClearDepthf(17, 17),
      glClearStencil(18, 18),
      glColorMask(19, 19),
      glCompileShader(20, 20),
      glCompressedTexImage2D(21, 21),
      glCompressedTexSubImage2D(22, 22),
      glCopyTexImage2D(23, 23),
      glCopyTexSubImage2D(24, 24),
      glCreateProgram(25, 25),
      glCreateShader(26, 26),
      glCullFace(27, 27),
      glDeleteBuffers(28, 28),
      glDeleteFramebuffers(29, 29),
      glDeleteProgram(30, 30),
      glDeleteRenderbuffers(31, 31),
      glDeleteShader(32, 32),
      glDeleteTextures(33, 33),
      glDepthFunc(34, 34),
      glDepthMask(35, 35),
      glDepthRangef(36, 36),
      glDetachShader(37, 37),
      glDisable(38, 38),
      glDisableVertexAttribArray(39, 39),
      glDrawArrays(40, 40),
      glDrawElements(41, 41),
      glEnable(42, 42),
      glEnableVertexAttribArray(43, 43),
      glFinish(44, 44),
      glFlush(45, 45),
      glFramebufferRenderbuffer(46, 46),
      glFramebufferTexture2D(47, 47),
      glFrontFace(48, 48),
      glGenBuffers(49, 49),
      glGenerateMipmap(50, 50),
      glGenFramebuffers(51, 51),
      glGenRenderbuffers(52, 52),
      glGenTextures(53, 53),
      glGetActiveAttrib(54, 54),
      glGetActiveUniform(55, 55),
      glGetAttachedShaders(56, 56),
      glGetAttribLocation(57, 57),
      glGetBooleanv(58, 58),
      glGetBufferParameteriv(59, 59),
      glGetError(60, 60),
      glGetFloatv(61, 61),
      glGetFramebufferAttachmentParameteriv(62, 62),
      glGetIntegerv(63, 63),
      glGetProgramiv(64, 64),
      glGetProgramInfoLog(65, 65),
      glGetRenderbufferParameteriv(66, 66),
      glGetShaderiv(67, 67),
      glGetShaderInfoLog(68, 68),
      glGetShaderPrecisionFormat(69, 69),
      glGetShaderSource(70, 70),
      glGetString(71, 71),
      glGetTexParameterfv(72, 72),
      glGetTexParameteriv(73, 73),
      glGetUniformfv(74, 74),
      glGetUniformiv(75, 75),
      glGetUniformLocation(76, 76),
      glGetVertexAttribfv(77, 77),
      glGetVertexAttribiv(78, 78),
      glGetVertexAttribPointerv(79, 79),
      glHint(80, 80),
      glIsBuffer(81, 81),
      glIsEnabled(82, 82),
      glIsFramebuffer(83, 83),
      glIsProgram(84, 84),
      glIsRenderbuffer(85, 85),
      glIsShader(86, 86),
      glIsTexture(87, 87),
      glLineWidth(88, 88),
      glLinkProgram(89, 89),
      glPixelStorei(90, 90),
      glPolygonOffset(91, 91),
      glReadPixels(92, 92),
      glReleaseShaderCompiler(93, 93),
      glRenderbufferStorage(94, 94),
      glSampleCoverage(95, 95),
      glScissor(96, 96),
      glShaderBinary(97, 97),
      glShaderSource(98, 98),
      glStencilFunc(99, 99),
      glStencilFuncSeparate(100, 100),
      glStencilMask(101, 101),
      glStencilMaskSeparate(102, 102),
      glStencilOp(103, 103),
      glStencilOpSeparate(104, 104),
      glTexImage2D(105, 105),
      glTexParameterf(106, 106),
      glTexParameterfv(107, 107),
      glTexParameteri(108, 108),
      glTexParameteriv(109, 109),
      glTexSubImage2D(110, 110),
      glUniform1f(111, 111),
      glUniform1fv(112, 112),
      glUniform1i(113, 113),
      glUniform1iv(114, 114),
      glUniform2f(115, 115),
      glUniform2fv(116, 116),
      glUniform2i(117, 117),
      glUniform2iv(118, 118),
      glUniform3f(119, 119),
      glUniform3fv(120, 120),
      glUniform3i(121, 121),
      glUniform3iv(122, 122),
      glUniform4f(123, 123),
      glUniform4fv(124, 124),
      glUniform4i(125, 125),
      glUniform4iv(126, 126),
      glUniformMatrix2fv(127, 127),
      glUniformMatrix3fv(128, 128),
      glUniformMatrix4fv(129, 129),
      glUseProgram(130, 130),
      glValidateProgram(131, 131),
      glVertexAttrib1f(132, 132),
      glVertexAttrib1fv(133, 133),
      glVertexAttrib2f(134, 134),
      glVertexAttrib2fv(135, 135),
      glVertexAttrib3f(136, 136),
      glVertexAttrib3fv(137, 137),
      glVertexAttrib4f(138, 138),
      glVertexAttrib4fv(139, 139),
      glVertexAttribPointer(140, 140),
      glViewport(141, 141),
      eglGetDisplay(142, 200),
      eglInitialize(143, 201),
      eglTerminate(144, 202),
      eglGetConfigs(145, 203),
      eglChooseConfig(146, 204),
      eglGetConfigAttrib(147, 205),
      eglCreateWindowSurface(148, 206),
      eglCreatePixmapSurface(149, 207),
      eglCreatePbufferSurface(150, 208),
      eglDestroySurface(151, 209),
      eglQuerySurface(152, 210),
      eglCreateContext(153, 211),
      eglDestroyContext(154, 212),
      eglMakeCurrent(155, 213),
      eglGetCurrentContext(156, 214),
      eglGetCurrentSurface(157, 215),
      eglGetCurrentDisplay(158, 216),
      eglQueryContext(159, 217),
      eglWaitGL(160, 218),
      eglWaitNative(161, 219),
      eglSwapBuffers(162, 220),
      eglCopyBuffers(163, 221),
      eglGetError(164, 222),
      eglQueryString(165, 223),
      eglGetProcAddress(166, 224),
      eglSurfaceAttrib(167, 225),
      eglBindTexImage(168, 226),
      eglReleaseTexImage(169, 227),
      eglSwapInterval(170, 228),
      eglBindAPI(171, 229),
      eglQueryAPI(172, 230),
      eglWaitClient(173, 231),
      eglReleaseThread(174, 232),
      eglCreatePbufferFromClientBuffer(175, 233),
      eglLockSurfaceKHR(176, 234),
      eglUnlockSurfaceKHR(177, 235),
      eglCreateImageKHR(178, 236),
      eglDestroyImageKHR(179, 237),
      eglCreateSyncKHR(180, 238),
      eglDestroySyncKHR(181, 239),
      eglClientWaitSyncKHR(182, 240),
      eglGetSyncAttribKHR(183, 241),
      eglSetSwapRectangleANDROID(184, 242),
      eglGetRenderBufferANDROID(185, 243),
      eglGetSystemTimeFrequencyNV(186, 244),
      eglGetSystemTimeNV(187, 245),
      invalid(188, 300),
      frameBufferContents(189, 301),
      ;


      public final int getNumber() { return value; }

      public static Function valueOf(int value) {
        switch (value) {
          case 0: return glActiveTexture;
          case 1: return glAttachShader;
          case 2: return glBindAttribLocation;
          case 3: return glBindBuffer;
          case 4: return glBindFramebuffer;
          case 5: return glBindRenderbuffer;
          case 6: return glBindTexture;
          case 7: return glBlendColor;
          case 8: return glBlendEquation;
          case 9: return glBlendEquationSeparate;
          case 10: return glBlendFunc;
          case 11: return glBlendFuncSeparate;
          case 12: return glBufferData;
          case 13: return glBufferSubData;
          case 14: return glCheckFramebufferStatus;
          case 15: return glClear;
          case 16: return glClearColor;
          case 17: return glClearDepthf;
          case 18: return glClearStencil;
          case 19: return glColorMask;
          case 20: return glCompileShader;
          case 21: return glCompressedTexImage2D;
          case 22: return glCompressedTexSubImage2D;
          case 23: return glCopyTexImage2D;
          case 24: return glCopyTexSubImage2D;
          case 25: return glCreateProgram;
          case 26: return glCreateShader;
          case 27: return glCullFace;
          case 28: return glDeleteBuffers;
          case 29: return glDeleteFramebuffers;
          case 30: return glDeleteProgram;
          case 31: return glDeleteRenderbuffers;
          case 32: return glDeleteShader;
          case 33: return glDeleteTextures;
          case 34: return glDepthFunc;
          case 35: return glDepthMask;
          case 36: return glDepthRangef;
          case 37: return glDetachShader;
          case 38: return glDisable;
          case 39: return glDisableVertexAttribArray;
          case 40: return glDrawArrays;
          case 41: return glDrawElements;
          case 42: return glEnable;
          case 43: return glEnableVertexAttribArray;
          case 44: return glFinish;
          case 45: return glFlush;
          case 46: return glFramebufferRenderbuffer;
          case 47: return glFramebufferTexture2D;
          case 48: return glFrontFace;
          case 49: return glGenBuffers;
          case 50: return glGenerateMipmap;
          case 51: return glGenFramebuffers;
          case 52: return glGenRenderbuffers;
          case 53: return glGenTextures;
          case 54: return glGetActiveAttrib;
          case 55: return glGetActiveUniform;
          case 56: return glGetAttachedShaders;
          case 57: return glGetAttribLocation;
          case 58: return glGetBooleanv;
          case 59: return glGetBufferParameteriv;
          case 60: return glGetError;
          case 61: return glGetFloatv;
          case 62: return glGetFramebufferAttachmentParameteriv;
          case 63: return glGetIntegerv;
          case 64: return glGetProgramiv;
          case 65: return glGetProgramInfoLog;
          case 66: return glGetRenderbufferParameteriv;
          case 67: return glGetShaderiv;
          case 68: return glGetShaderInfoLog;
          case 69: return glGetShaderPrecisionFormat;
          case 70: return glGetShaderSource;
          case 71: return glGetString;
          case 72: return glGetTexParameterfv;
          case 73: return glGetTexParameteriv;
          case 74: return glGetUniformfv;
          case 75: return glGetUniformiv;
          case 76: return glGetUniformLocation;
          case 77: return glGetVertexAttribfv;
          case 78: return glGetVertexAttribiv;
          case 79: return glGetVertexAttribPointerv;
          case 80: return glHint;
          case 81: return glIsBuffer;
          case 82: return glIsEnabled;
          case 83: return glIsFramebuffer;
          case 84: return glIsProgram;
          case 85: return glIsRenderbuffer;
          case 86: return glIsShader;
          case 87: return glIsTexture;
          case 88: return glLineWidth;
          case 89: return glLinkProgram;
          case 90: return glPixelStorei;
          case 91: return glPolygonOffset;
          case 92: return glReadPixels;
          case 93: return glReleaseShaderCompiler;
          case 94: return glRenderbufferStorage;
          case 95: return glSampleCoverage;
          case 96: return glScissor;
          case 97: return glShaderBinary;
          case 98: return glShaderSource;
          case 99: return glStencilFunc;
          case 100: return glStencilFuncSeparate;
          case 101: return glStencilMask;
          case 102: return glStencilMaskSeparate;
          case 103: return glStencilOp;
          case 104: return glStencilOpSeparate;
          case 105: return glTexImage2D;
          case 106: return glTexParameterf;
          case 107: return glTexParameterfv;
          case 108: return glTexParameteri;
          case 109: return glTexParameteriv;
          case 110: return glTexSubImage2D;
          case 111: return glUniform1f;
          case 112: return glUniform1fv;
          case 113: return glUniform1i;
          case 114: return glUniform1iv;
          case 115: return glUniform2f;
          case 116: return glUniform2fv;
          case 117: return glUniform2i;
          case 118: return glUniform2iv;
          case 119: return glUniform3f;
          case 120: return glUniform3fv;
          case 121: return glUniform3i;
          case 122: return glUniform3iv;
          case 123: return glUniform4f;
          case 124: return glUniform4fv;
          case 125: return glUniform4i;
          case 126: return glUniform4iv;
          case 127: return glUniformMatrix2fv;
          case 128: return glUniformMatrix3fv;
          case 129: return glUniformMatrix4fv;
          case 130: return glUseProgram;
          case 131: return glValidateProgram;
          case 132: return glVertexAttrib1f;
          case 133: return glVertexAttrib1fv;
          case 134: return glVertexAttrib2f;
          case 135: return glVertexAttrib2fv;
          case 136: return glVertexAttrib3f;
          case 137: return glVertexAttrib3fv;
          case 138: return glVertexAttrib4f;
          case 139: return glVertexAttrib4fv;
          case 140: return glVertexAttribPointer;
          case 141: return glViewport;
          case 200: return eglGetDisplay;
          case 201: return eglInitialize;
          case 202: return eglTerminate;
          case 203: return eglGetConfigs;
          case 204: return eglChooseConfig;
          case 205: return eglGetConfigAttrib;
          case 206: return eglCreateWindowSurface;
          case 207: return eglCreatePixmapSurface;
          case 208: return eglCreatePbufferSurface;
          case 209: return eglDestroySurface;
          case 210: return eglQuerySurface;
          case 211: return eglCreateContext;
          case 212: return eglDestroyContext;
          case 213: return eglMakeCurrent;
          case 214: return eglGetCurrentContext;
          case 215: return eglGetCurrentSurface;
          case 216: return eglGetCurrentDisplay;
          case 217: return eglQueryContext;
          case 218: return eglWaitGL;
          case 219: return eglWaitNative;
          case 220: return eglSwapBuffers;
          case 221: return eglCopyBuffers;
          case 222: return eglGetError;
          case 223: return eglQueryString;
          case 224: return eglGetProcAddress;
          case 225: return eglSurfaceAttrib;
          case 226: return eglBindTexImage;
          case 227: return eglReleaseTexImage;
          case 228: return eglSwapInterval;
          case 229: return eglBindAPI;
          case 230: return eglQueryAPI;
          case 231: return eglWaitClient;
          case 232: return eglReleaseThread;
          case 233: return eglCreatePbufferFromClientBuffer;
          case 234: return eglLockSurfaceKHR;
          case 235: return eglUnlockSurfaceKHR;
          case 236: return eglCreateImageKHR;
          case 237: return eglDestroyImageKHR;
          case 238: return eglCreateSyncKHR;
          case 239: return eglDestroySyncKHR;
          case 240: return eglClientWaitSyncKHR;
          case 241: return eglGetSyncAttribKHR;
          case 242: return eglSetSwapRectangleANDROID;
          case 243: return eglGetRenderBufferANDROID;
          case 244: return eglGetSystemTimeFrequencyNV;
          case 245: return eglGetSystemTimeNV;
          case 300: return invalid;
          case 301: return frameBufferContents;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Function>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static com.google.protobuf.Internal.EnumLiteMap<Function>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Function>() {
              public Function findValueByNumber(int number) {
                return Function.valueOf(number)
      ;        }
            };

      private final int index;
      private final int value;
      private Function(int index, int value) {
        this.index = index;
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:com.android.gltrace.GLCall.Function)
    }

    public static final class DataType extends
        com.google.protobuf.GeneratedMessageLite {
      // Use DataType.newBuilder() to construct.
      private DataType() {
        initFields();
      }
      private DataType(boolean noInit) {}

      private static final DataType defaultInstance;
      public static DataType getDefaultInstance() {
        return defaultInstance;
      }

      public DataType getDefaultInstanceForType() {
        return defaultInstance;
      }

      public enum Type
          implements com.google.protobuf.Internal.EnumLite {
        VOID(0, 1),
        CHAR(1, 2),
        BYTE(2, 3),
        INT(3, 4),
        FLOAT(4, 5),
        BOOLEAN(5, 6),
        ENUM(6, 7),
        ;


        public final int getNumber() { return value; }

        public static Type valueOf(int value) {
          switch (value) {
            case 1: return VOID;
            case 2: return CHAR;
            case 3: return BYTE;
            case 4: return INT;
            case 5: return FLOAT;
            case 6: return BOOLEAN;
            case 7: return ENUM;
            default: return null;
          }
        }

        public static com.google.protobuf.Internal.EnumLiteMap<Type>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static com.google.protobuf.Internal.EnumLiteMap<Type>
            internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<Type>() {
                public Type findValueByNumber(int number) {
                  return Type.valueOf(number)
        ;        }
              };

        private final int index;
        private final int value;
        private Type(int index, int value) {
          this.index = index;
          this.value = value;
        }

        // @@protoc_insertion_point(enum_scope:com.android.gltrace.GLCall.DataType.Type)
      }

      // required .com.android.gltrace.GLCall.DataType.Type type = 1 [default = VOID];
      public static final int TYPE_FIELD_NUMBER = 1;
      private boolean hasType;
      private com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.Type type_;
      public boolean hasType() { return hasType; }
      public com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.Type getType() { return type_; }

      // required bool isArray = 2 [default = false];
      public static final int ISARRAY_FIELD_NUMBER = 2;
      private boolean hasIsArray;
      private boolean isArray_ = false;
      public boolean hasIsArray() { return hasIsArray; }
      public boolean getIsArray() { return isArray_; }

      // repeated int32 intValue = 3;
      public static final int INTVALUE_FIELD_NUMBER = 3;
      private java.util.List<java.lang.Integer> intValue_ =
        java.util.Collections.emptyList();
      public java.util.List<java.lang.Integer> getIntValueList() {
        return intValue_;
      }
      public int getIntValueCount() { return intValue_.size(); }
      public int getIntValue(int index) {
        return intValue_.get(index);
      }

      // repeated float floatValue = 4;
      public static final int FLOATVALUE_FIELD_NUMBER = 4;
      private java.util.List<java.lang.Float> floatValue_ =
        java.util.Collections.emptyList();
      public java.util.List<java.lang.Float> getFloatValueList() {
        return floatValue_;
      }
      public int getFloatValueCount() { return floatValue_.size(); }
      public float getFloatValue(int index) {
        return floatValue_.get(index);
      }

      // repeated bytes charValue = 5;
      public static final int CHARVALUE_FIELD_NUMBER = 5;
      private java.util.List<com.google.protobuf.ByteString> charValue_ =
        java.util.Collections.emptyList();
      public java.util.List<com.google.protobuf.ByteString> getCharValueList() {
        return charValue_;
      }
      public int getCharValueCount() { return charValue_.size(); }
      public com.google.protobuf.ByteString getCharValue(int index) {
        return charValue_.get(index);
      }

      // repeated bytes rawBytes = 6;
      public static final int RAWBYTES_FIELD_NUMBER = 6;
      private java.util.List<com.google.protobuf.ByteString> rawBytes_ =
        java.util.Collections.emptyList();
      public java.util.List<com.google.protobuf.ByteString> getRawBytesList() {
        return rawBytes_;
      }
      public int getRawBytesCount() { return rawBytes_.size(); }
      public com.google.protobuf.ByteString getRawBytes(int index) {
        return rawBytes_.get(index);
      }

      // repeated bool boolValue = 7;
      public static final int BOOLVALUE_FIELD_NUMBER = 7;
      private java.util.List<java.lang.Boolean> boolValue_ =
        java.util.Collections.emptyList();
      public java.util.List<java.lang.Boolean> getBoolValueList() {
        return boolValue_;
      }
      public int getBoolValueCount() { return boolValue_.size(); }
      public boolean getBoolValue(int index) {
        return boolValue_.get(index);
      }

      private void initFields() {
        type_ = com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.Type.VOID;
      }
      public final boolean isInitialized() {
        if (!hasType) return false;
        if (!hasIsArray) return false;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (hasType()) {
          output.writeEnum(1, getType().getNumber());
        }
        if (hasIsArray()) {
          output.writeBool(2, getIsArray());
        }
        for (int element : getIntValueList()) {
          output.writeInt32(3, element);
        }
        for (float element : getFloatValueList()) {
          output.writeFloat(4, element);
        }
        for (com.google.protobuf.ByteString element : getCharValueList()) {
          output.writeBytes(5, element);
        }
        for (com.google.protobuf.ByteString element : getRawBytesList()) {
          output.writeBytes(6, element);
        }
        for (boolean element : getBoolValueList()) {
          output.writeBool(7, element);
        }
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (hasType()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, getType().getNumber());
        }
        if (hasIsArray()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(2, getIsArray());
        }
        {
          int dataSize = 0;
          for (int element : getIntValueList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(element);
          }
          size += dataSize;
          size += 1 * getIntValueList().size();
        }
        {
          int dataSize = 0;
          dataSize = 4 * getFloatValueList().size();
          size += dataSize;
          size += 1 * getFloatValueList().size();
        }
        {
          int dataSize = 0;
          for (com.google.protobuf.ByteString element : getCharValueList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeBytesSizeNoTag(element);
          }
          size += dataSize;
          size += 1 * getCharValueList().size();
        }
        {
          int dataSize = 0;
          for (com.google.protobuf.ByteString element : getRawBytesList()) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeBytesSizeNoTag(element);
          }
          size += dataSize;
          size += 1 * getRawBytesList().size();
        }
        {
          int dataSize = 0;
          dataSize = 1 * getBoolValueList().size();
          size += dataSize;
          size += 1 * getBoolValueList().size();
        }
        memoizedSerializedSize = size;
        return size;
      }

      public static com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType, Builder> {
        private com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType result;

        // Construct using com.android.gltrace.Glcall.GLCall.DataType.newBuilder()
        private Builder() {}

        private static Builder create() {
          Builder builder = new Builder();
          builder.result = new com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType();
          return builder;
        }

        @Override
        protected com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType internalGetResult() {
          return result;
        }

        public Builder clear() {
          if (result == null) {
            throw new IllegalStateException(
              "Cannot call clear() after build().");
          }
          result = new com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType();
          return this;
        }

        @Override
        public Builder clone() {
          return create().mergeFrom(result);
        }

        @Override
        public com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType getDefaultInstanceForType() {
          return com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.getDefaultInstance();
        }

        public boolean isInitialized() {
          return result.isInitialized();
        }
        public com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType build() {
          if (result != null && !isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return buildPartial();
        }

        private com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          if (!isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return buildPartial();
        }

        public com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType buildPartial() {
          if (result == null) {
            throw new IllegalStateException(
              "build() has already been called on this Builder.");
          }
          if (result.intValue_ != java.util.Collections.EMPTY_LIST) {
            result.intValue_ =
              java.util.Collections.unmodifiableList(result.intValue_);
          }
          if (result.floatValue_ != java.util.Collections.EMPTY_LIST) {
            result.floatValue_ =
              java.util.Collections.unmodifiableList(result.floatValue_);
          }
          if (result.charValue_ != java.util.Collections.EMPTY_LIST) {
            result.charValue_ =
              java.util.Collections.unmodifiableList(result.charValue_);
          }
          if (result.rawBytes_ != java.util.Collections.EMPTY_LIST) {
            result.rawBytes_ =
              java.util.Collections.unmodifiableList(result.rawBytes_);
          }
          if (result.boolValue_ != java.util.Collections.EMPTY_LIST) {
            result.boolValue_ =
              java.util.Collections.unmodifiableList(result.boolValue_);
          }
          com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType returnMe = result;
          result = null;
          return returnMe;
        }

        @Override
        public Builder mergeFrom(com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType other) {
          if (other == com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.getDefaultInstance()) return this;
          if (other.hasType()) {
            setType(other.getType());
          }
          if (other.hasIsArray()) {
            setIsArray(other.getIsArray());
          }
          if (!other.intValue_.isEmpty()) {
            if (result.intValue_.isEmpty()) {
              result.intValue_ = new java.util.ArrayList<java.lang.Integer>();
            }
            result.intValue_.addAll(other.intValue_);
          }
          if (!other.floatValue_.isEmpty()) {
            if (result.floatValue_.isEmpty()) {
              result.floatValue_ = new java.util.ArrayList<java.lang.Float>();
            }
            result.floatValue_.addAll(other.floatValue_);
          }
          if (!other.charValue_.isEmpty()) {
            if (result.charValue_.isEmpty()) {
              result.charValue_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
            }
            result.charValue_.addAll(other.charValue_);
          }
          if (!other.rawBytes_.isEmpty()) {
            if (result.rawBytes_.isEmpty()) {
              result.rawBytes_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
            }
            result.rawBytes_.addAll(other.rawBytes_);
          }
          if (!other.boolValue_.isEmpty()) {
            if (result.boolValue_.isEmpty()) {
              result.boolValue_ = new java.util.ArrayList<java.lang.Boolean>();
            }
            result.boolValue_.addAll(other.boolValue_);
          }
          return this;
        }

        @Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                return this;
              default: {
                if (!parseUnknownField(input, extensionRegistry, tag)) {
                  return this;
                }
                break;
              }
              case 8: {
                int rawValue = input.readEnum();
                com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.Type value = com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.Type.valueOf(rawValue);
                if (value != null) {
                  setType(value);
                }
                break;
              }
              case 16: {
                setIsArray(input.readBool());
                break;
              }
              case 24: {
                addIntValue(input.readInt32());
                break;
              }
              case 26: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addIntValue(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 37: {
                addFloatValue(input.readFloat());
                break;
              }
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addFloatValue(input.readFloat());
                }
                input.popLimit(limit);
                break;
              }
              case 42: {
                addCharValue(input.readBytes());
                break;
              }
              case 50: {
                addRawBytes(input.readBytes());
                break;
              }
              case 56: {
                addBoolValue(input.readBool());
                break;
              }
              case 58: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                while (input.getBytesUntilLimit() > 0) {
                  addBoolValue(input.readBool());
                }
                input.popLimit(limit);
                break;
              }
            }
          }
        }


        // required .com.android.gltrace.GLCall.DataType.Type type = 1 [default = VOID];
        public boolean hasType() {
          return result.hasType();
        }
        public com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.Type getType() {
          return result.getType();
        }
        public Builder setType(com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.Type value) {
          if (value == null) {
            throw new NullPointerException();
          }
          result.hasType = true;
          result.type_ = value;
          return this;
        }
        public Builder clearType() {
          result.hasType = false;
          result.type_ = com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.Type.VOID;
          return this;
        }

        // required bool isArray = 2 [default = false];
        public boolean hasIsArray() {
          return result.hasIsArray();
        }
        public boolean getIsArray() {
          return result.getIsArray();
        }
        public Builder setIsArray(boolean value) {
          result.hasIsArray = true;
          result.isArray_ = value;
          return this;
        }
        public Builder clearIsArray() {
          result.hasIsArray = false;
          result.isArray_ = false;
          return this;
        }

        // repeated int32 intValue = 3;
        public java.util.List<java.lang.Integer> getIntValueList() {
          return java.util.Collections.unmodifiableList(result.intValue_);
        }
        public int getIntValueCount() {
          return result.getIntValueCount();
        }
        public int getIntValue(int index) {
          return result.getIntValue(index);
        }
        public Builder setIntValue(int index, int value) {
          result.intValue_.set(index, value);
          return this;
        }
        public Builder addIntValue(int value) {
          if (result.intValue_.isEmpty()) {
            result.intValue_ = new java.util.ArrayList<java.lang.Integer>();
          }
          result.intValue_.add(value);
          return this;
        }
        public Builder addAllIntValue(
            java.lang.Iterable<? extends java.lang.Integer> values) {
          if (result.intValue_.isEmpty()) {
            result.intValue_ = new java.util.ArrayList<java.lang.Integer>();
          }
          super.addAll(values, result.intValue_);
          return this;
        }
        public Builder clearIntValue() {
          result.intValue_ = java.util.Collections.emptyList();
          return this;
        }

        // repeated float floatValue = 4;
        public java.util.List<java.lang.Float> getFloatValueList() {
          return java.util.Collections.unmodifiableList(result.floatValue_);
        }
        public int getFloatValueCount() {
          return result.getFloatValueCount();
        }
        public float getFloatValue(int index) {
          return result.getFloatValue(index);
        }
        public Builder setFloatValue(int index, float value) {
          result.floatValue_.set(index, value);
          return this;
        }
        public Builder addFloatValue(float value) {
          if (result.floatValue_.isEmpty()) {
            result.floatValue_ = new java.util.ArrayList<java.lang.Float>();
          }
          result.floatValue_.add(value);
          return this;
        }
        public Builder addAllFloatValue(
            java.lang.Iterable<? extends java.lang.Float> values) {
          if (result.floatValue_.isEmpty()) {
            result.floatValue_ = new java.util.ArrayList<java.lang.Float>();
          }
          super.addAll(values, result.floatValue_);
          return this;
        }
        public Builder clearFloatValue() {
          result.floatValue_ = java.util.Collections.emptyList();
          return this;
        }

        // repeated bytes charValue = 5;
        public java.util.List<com.google.protobuf.ByteString> getCharValueList() {
          return java.util.Collections.unmodifiableList(result.charValue_);
        }
        public int getCharValueCount() {
          return result.getCharValueCount();
        }
        public com.google.protobuf.ByteString getCharValue(int index) {
          return result.getCharValue(index);
        }
        public Builder setCharValue(int index, com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  result.charValue_.set(index, value);
          return this;
        }
        public Builder addCharValue(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  if (result.charValue_.isEmpty()) {
            result.charValue_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
          }
          result.charValue_.add(value);
          return this;
        }
        public Builder addAllCharValue(
            java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
          if (result.charValue_.isEmpty()) {
            result.charValue_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
          }
          super.addAll(values, result.charValue_);
          return this;
        }
        public Builder clearCharValue() {
          result.charValue_ = java.util.Collections.emptyList();
          return this;
        }

        // repeated bytes rawBytes = 6;
        public java.util.List<com.google.protobuf.ByteString> getRawBytesList() {
          return java.util.Collections.unmodifiableList(result.rawBytes_);
        }
        public int getRawBytesCount() {
          return result.getRawBytesCount();
        }
        public com.google.protobuf.ByteString getRawBytes(int index) {
          return result.getRawBytes(index);
        }
        public Builder setRawBytes(int index, com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  result.rawBytes_.set(index, value);
          return this;
        }
        public Builder addRawBytes(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  if (result.rawBytes_.isEmpty()) {
            result.rawBytes_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
          }
          result.rawBytes_.add(value);
          return this;
        }
        public Builder addAllRawBytes(
            java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
          if (result.rawBytes_.isEmpty()) {
            result.rawBytes_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
          }
          super.addAll(values, result.rawBytes_);
          return this;
        }
        public Builder clearRawBytes() {
          result.rawBytes_ = java.util.Collections.emptyList();
          return this;
        }

        // repeated bool boolValue = 7;
        public java.util.List<java.lang.Boolean> getBoolValueList() {
          return java.util.Collections.unmodifiableList(result.boolValue_);
        }
        public int getBoolValueCount() {
          return result.getBoolValueCount();
        }
        public boolean getBoolValue(int index) {
          return result.getBoolValue(index);
        }
        public Builder setBoolValue(int index, boolean value) {
          result.boolValue_.set(index, value);
          return this;
        }
        public Builder addBoolValue(boolean value) {
          if (result.boolValue_.isEmpty()) {
            result.boolValue_ = new java.util.ArrayList<java.lang.Boolean>();
          }
          result.boolValue_.add(value);
          return this;
        }
        public Builder addAllBoolValue(
            java.lang.Iterable<? extends java.lang.Boolean> values) {
          if (result.boolValue_.isEmpty()) {
            result.boolValue_ = new java.util.ArrayList<java.lang.Boolean>();
          }
          super.addAll(values, result.boolValue_);
          return this;
        }
        public Builder clearBoolValue() {
          result.boolValue_ = java.util.Collections.emptyList();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:com.android.gltrace.GLCall.DataType)
      }

      static {
        defaultInstance = new DataType(true);
        com.android.ide.eclipse.gltrace.Glcall.internalForceInit();
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:com.android.gltrace.GLCall.DataType)
    }

    // required int32 context_id = 1;
    public static final int CONTEXT_ID_FIELD_NUMBER = 1;
    private boolean hasContextId;
    private int contextId_ = 0;
    public boolean hasContextId() { return hasContextId; }
    public int getContextId() { return contextId_; }

    // required .com.android.gltrace.GLCall.Function function = 2 [default = invalid];
    public static final int FUNCTION_FIELD_NUMBER = 2;
    private boolean hasFunction;
    private com.android.ide.eclipse.gltrace.Glcall.GLCall.Function function_;
    public boolean hasFunction() { return hasFunction; }
    public com.android.ide.eclipse.gltrace.Glcall.GLCall.Function getFunction() { return function_; }

    // repeated .com.android.gltrace.GLCall.DataType args = 3;
    public static final int ARGS_FIELD_NUMBER = 3;
    private java.util.List<com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType> args_ =
      java.util.Collections.emptyList();
    public java.util.List<com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType> getArgsList() {
      return args_;
    }
    public int getArgsCount() { return args_.size(); }
    public com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType getArgs(int index) {
      return args_.get(index);
    }

    // optional .com.android.gltrace.GLCall.DataType returnValue = 4;
    public static final int RETURNVALUE_FIELD_NUMBER = 4;
    private boolean hasReturnValue;
    private com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType returnValue_;
    public boolean hasReturnValue() { return hasReturnValue; }
    public com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType getReturnValue() { return returnValue_; }

    // optional float duration = 5;
    public static final int DURATION_FIELD_NUMBER = 5;
    private boolean hasDuration;
    private float duration_ = 0F;
    public boolean hasDuration() { return hasDuration; }
    public float getDuration() { return duration_; }

    private void initFields() {
      function_ = com.android.ide.eclipse.gltrace.Glcall.GLCall.Function.invalid;
      returnValue_ = com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.getDefaultInstance();
    }
    public final boolean isInitialized() {
      if (!hasContextId) return false;
      if (!hasFunction) return false;
      for (com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType element : getArgsList()) {
        if (!element.isInitialized()) return false;
      }
      if (hasReturnValue()) {
        if (!getReturnValue().isInitialized()) return false;
      }
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (hasContextId()) {
        output.writeInt32(1, getContextId());
      }
      if (hasFunction()) {
        output.writeEnum(2, getFunction().getNumber());
      }
      for (com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType element : getArgsList()) {
        output.writeMessage(3, element);
      }
      if (hasReturnValue()) {
        output.writeMessage(4, getReturnValue());
      }
      if (hasDuration()) {
        output.writeFloat(5, getDuration());
      }
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (hasContextId()) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, getContextId());
      }
      if (hasFunction()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, getFunction().getNumber());
      }
      for (com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType element : getArgsList()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, element);
      }
      if (hasReturnValue()) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getReturnValue());
      }
      if (hasDuration()) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(5, getDuration());
      }
      memoizedSerializedSize = size;
      return size;
    }

    public static com.android.ide.eclipse.gltrace.Glcall.GLCall parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.android.ide.eclipse.gltrace.Glcall.GLCall parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.android.ide.eclipse.gltrace.Glcall.GLCall parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static com.android.ide.eclipse.gltrace.Glcall.GLCall parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static com.android.ide.eclipse.gltrace.Glcall.GLCall parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.android.ide.eclipse.gltrace.Glcall.GLCall parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static com.android.ide.eclipse.gltrace.Glcall.GLCall parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.android.ide.eclipse.gltrace.Glcall.GLCall parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static com.android.ide.eclipse.gltrace.Glcall.GLCall parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static com.android.ide.eclipse.gltrace.Glcall.GLCall parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.android.ide.eclipse.gltrace.Glcall.GLCall prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          com.android.ide.eclipse.gltrace.Glcall.GLCall, Builder> {
      private com.android.ide.eclipse.gltrace.Glcall.GLCall result;

      // Construct using com.android.gltrace.Glcall.GLCall.newBuilder()
      private Builder() {}

      private static Builder create() {
        Builder builder = new Builder();
        builder.result = new com.android.ide.eclipse.gltrace.Glcall.GLCall();
        return builder;
      }

      @Override
    protected com.android.ide.eclipse.gltrace.Glcall.GLCall internalGetResult() {
        return result;
      }

      public Builder clear() {
        if (result == null) {
          throw new IllegalStateException(
            "Cannot call clear() after build().");
        }
        result = new com.android.ide.eclipse.gltrace.Glcall.GLCall();
        return this;
      }

      @Override
    public Builder clone() {
        return create().mergeFrom(result);
      }

      @Override
    public com.android.ide.eclipse.gltrace.Glcall.GLCall getDefaultInstanceForType() {
        return com.android.ide.eclipse.gltrace.Glcall.GLCall.getDefaultInstance();
      }

      public boolean isInitialized() {
        return result.isInitialized();
      }
      public com.android.ide.eclipse.gltrace.Glcall.GLCall build() {
        if (result != null && !isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return buildPartial();
      }

      private com.android.ide.eclipse.gltrace.Glcall.GLCall buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        if (!isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return buildPartial();
      }

      public com.android.ide.eclipse.gltrace.Glcall.GLCall buildPartial() {
        if (result == null) {
          throw new IllegalStateException(
            "build() has already been called on this Builder.");
        }
        if (result.args_ != java.util.Collections.EMPTY_LIST) {
          result.args_ =
            java.util.Collections.unmodifiableList(result.args_);
        }
        com.android.ide.eclipse.gltrace.Glcall.GLCall returnMe = result;
        result = null;
        return returnMe;
      }

      @Override
    public Builder mergeFrom(com.android.ide.eclipse.gltrace.Glcall.GLCall other) {
        if (other == com.android.ide.eclipse.gltrace.Glcall.GLCall.getDefaultInstance()) return this;
        if (other.hasContextId()) {
          setContextId(other.getContextId());
        }
        if (other.hasFunction()) {
          setFunction(other.getFunction());
        }
        if (!other.args_.isEmpty()) {
          if (result.args_.isEmpty()) {
            result.args_ = new java.util.ArrayList<com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType>();
          }
          result.args_.addAll(other.args_);
        }
        if (other.hasReturnValue()) {
          mergeReturnValue(other.getReturnValue());
        }
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        return this;
      }

      @Override
    public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                return this;
              }
              break;
            }
            case 8: {
              setContextId(input.readInt32());
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              com.android.ide.eclipse.gltrace.Glcall.GLCall.Function value = com.android.ide.eclipse.gltrace.Glcall.GLCall.Function.valueOf(rawValue);
              if (value != null) {
                setFunction(value);
              }
              break;
            }
            case 26: {
              com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.Builder subBuilder = com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addArgs(subBuilder.buildPartial());
              break;
            }
            case 34: {
              com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.Builder subBuilder = com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.newBuilder();
              if (hasReturnValue()) {
                subBuilder.mergeFrom(getReturnValue());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setReturnValue(subBuilder.buildPartial());
              break;
            }
            case 45: {
              setDuration(input.readFloat());
              break;
            }
          }
        }
      }


      // required int32 context_id = 1;
      public boolean hasContextId() {
        return result.hasContextId();
      }
      public int getContextId() {
        return result.getContextId();
      }
      public Builder setContextId(int value) {
        result.hasContextId = true;
        result.contextId_ = value;
        return this;
      }
      public Builder clearContextId() {
        result.hasContextId = false;
        result.contextId_ = 0;
        return this;
      }

      // required .com.android.gltrace.GLCall.Function function = 2 [default = invalid];
      public boolean hasFunction() {
        return result.hasFunction();
      }
      public com.android.ide.eclipse.gltrace.Glcall.GLCall.Function getFunction() {
        return result.getFunction();
      }
      public Builder setFunction(com.android.ide.eclipse.gltrace.Glcall.GLCall.Function value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasFunction = true;
        result.function_ = value;
        return this;
      }
      public Builder clearFunction() {
        result.hasFunction = false;
        result.function_ = com.android.ide.eclipse.gltrace.Glcall.GLCall.Function.invalid;
        return this;
      }

      // repeated .com.android.gltrace.GLCall.DataType args = 3;
      public java.util.List<com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType> getArgsList() {
        return java.util.Collections.unmodifiableList(result.args_);
      }
      public int getArgsCount() {
        return result.getArgsCount();
      }
      public com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType getArgs(int index) {
        return result.getArgs(index);
      }
      public Builder setArgs(int index, com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.args_.set(index, value);
        return this;
      }
      public Builder setArgs(int index, com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.Builder builderForValue) {
        result.args_.set(index, builderForValue.build());
        return this;
      }
      public Builder addArgs(com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        if (result.args_.isEmpty()) {
          result.args_ = new java.util.ArrayList<com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType>();
        }
        result.args_.add(value);
        return this;
      }
      public Builder addArgs(com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.Builder builderForValue) {
        if (result.args_.isEmpty()) {
          result.args_ = new java.util.ArrayList<com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType>();
        }
        result.args_.add(builderForValue.build());
        return this;
      }
      public Builder addAllArgs(
          java.lang.Iterable<? extends com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType> values) {
        if (result.args_.isEmpty()) {
          result.args_ = new java.util.ArrayList<com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType>();
        }
        super.addAll(values, result.args_);
        return this;
      }
      public Builder clearArgs() {
        result.args_ = java.util.Collections.emptyList();
        return this;
      }

      // optional .com.android.gltrace.GLCall.DataType returnValue = 4;
      public boolean hasReturnValue() {
        return result.hasReturnValue();
      }
      public com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType getReturnValue() {
        return result.getReturnValue();
      }
      public Builder setReturnValue(com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        result.hasReturnValue = true;
        result.returnValue_ = value;
        return this;
      }
      public Builder setReturnValue(com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.Builder builderForValue) {
        result.hasReturnValue = true;
        result.returnValue_ = builderForValue.build();
        return this;
      }
      public Builder mergeReturnValue(com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType value) {
        if (result.hasReturnValue() &&
            result.returnValue_ != com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.getDefaultInstance()) {
          result.returnValue_ =
            com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.newBuilder(result.returnValue_).mergeFrom(value).buildPartial();
        } else {
          result.returnValue_ = value;
        }
        result.hasReturnValue = true;
        return this;
      }
      public Builder clearReturnValue() {
        result.hasReturnValue = false;
        result.returnValue_ = com.android.ide.eclipse.gltrace.Glcall.GLCall.DataType.getDefaultInstance();
        return this;
      }

      // optional float duration = 5;
      public boolean hasDuration() {
        return result.hasDuration();
      }
      public float getDuration() {
        return result.getDuration();
      }
      public Builder setDuration(float value) {
        result.hasDuration = true;
        result.duration_ = value;
        return this;
      }
      public Builder clearDuration() {
        result.hasDuration = false;
        result.duration_ = 0F;
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.android.gltrace.GLCall)
    }

    static {
      defaultInstance = new GLCall(true);
      com.android.ide.eclipse.gltrace.Glcall.internalForceInit();
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.android.gltrace.GLCall)
  }


  static {
  }

  public static void internalForceInit() {}

  // @@protoc_insertion_point(outer_class_scope)
}
